//
//  HMMainViewController.swift
//  Weibo24
//
//  Created by apple on 17/3/26.
//  Copyright © 2017年 itheima. All rights reserved.
//

import UIKit
import SVProgressHUD

//  根视图控制器
class HMMainViewController: UITabBarController,HMTabBarDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

        // 添加子视图控制器的方式1
//        self.viewControllers
        // 添加子视图控制器的方式2
//        self.addChildViewController()
        //  设置自定义的tabbar
//        self.tabBar = HMTabBar()
        //  使用kvc给只读属性赋值
        let hmTabBar = HMTabBar()
        //  设置代理
        hmTabBar.hmDelegate = self
        //  设置闭包
        hmTabBar.didSelectedComposeButtonClosure = { [weak self] in
         
            if !HMUserAccountViewModel.sharedViewModel.isLogin {
                SVProgressHUD.showError(withStatus: "请先登录,亲~")
                return
            }
            
            if let weakSelf = self {
                //  代码执行到此,表示登录成功
                let composeView = HMComposeView()
                //  显示罩层
                composeView.show(target: weakSelf)
            }
         
         
            
            
        }
                
        self.setValue(hmTabBar, forKey: "tabBar")
        //  首页
        addChildViewController(childController: HMHomeTableViewController(), imageName: "tabbar_home", title: "首页")
        //  首页
        addChildViewController(childController: HMMessageTableViewController(), imageName: "tabbar_message_center", title: "消息")
        //  首页
        addChildViewController(childController: HMDiscoverTableViewController(), imageName: "tabbar_discover", title: "发现")
        //  首页
        addChildViewController(childController: HMMineTableViewController(), imageName: "tabbar_profile", title: "我的")
    }
    //  cmd + option + / 快捷键
    /// 重载添加子视图控制器的方法
    ///
    /// - Parameters:
    ///   - childController: 子视图控制器
    ///   - imageName: 图片名字
    ///   - title: 标题
    func addChildViewController(childController: UIViewController, imageName: String, title: String) {
        //  设置tabbarItem的图片
        childController.tabBarItem.image = UIImage(named: imageName)
        //  设置tabbarItem的选中图片, 设置渲染模式使用原始图片方式显示
        childController.tabBarItem.selectedImage = UIImage(named: imageName + "_selected")?.withRenderingMode(.alwaysOriginal)
        //  设置文字颜色
        childController.tabBarItem.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.orange], for: .selected)
        //  设置文字大小
        childController.tabBarItem.setTitleTextAttributes([NSFontAttributeName: UIFont.systemFont(ofSize: 12)], for: .normal)
        //  设置tabbaritem的文字
//        childController.tabBarItem.title = title
//        childController.navigationItem.title = title
        
        //  设置标题
        childController.title = title
        //  创建导航视图控制器
        let nav = HMNavigationViewController(rootViewController: childController)
        //  添加子视图控制器
        addChildViewController(nav)
    }

    
    //  MARK: ---HMTabBarDelegate的方法的实现
    func didSelectedComposeButtonOperation() {
        print("我是代理对象调用过来的")
    }

}
